<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
require_once(APPPATH."models/seriemodel.php");


class seriedao extends CI_Model {
	
	function __construct(){
	
		parent::__construct();
	
	}
	
	public function excluir($id){
		try{
			$exec = $this->db->query("call excluirSerieById(".$id.")") or die("Erro: " . $this->db->_error_message());
			if($exec->num_rows() > 0){
				$d = $exec->row();
				$erro = (int)$d->erro;
				$this->db->close();
				if($erro == 0){
					return true;
				}
				$this->db->close();
				return false;
			}
			$this->db->close();
			return false;
		} catch(Exception $e){
			try {
				$this->db->close();
			} catch (Exception $a){
	
			}
		}
		return false;
	}
	
	public function getListaSerieByIdEnsino($idEnsino){
		try {
			$exec = $this->db->query("call getSerieByEnsino(".$idEnsino.")") or die("Erro : " . $this->db->_error_message());
			if($exec->num_rows() > 0){
				$listaSeries = array();
				foreach($exec->result() as $dados){
					$serie = new SerieModel();
					$serie->setIdEnsino($dados->idensino);
					$serie->setIdSerie($dados->idserie);
					$serie->setSerie($dados->serie);
					$serie->setStrSerie($dados->strSerie);
					array_push($listaSeries, $serie);
				}
				$this->db->close();
				return $listaSeries;
			}
			$this->db->close();
			return null;
		} catch(Exception $e){
			try {
				$this->db->close();
			} catch(Exception $a){
			}
		}
	}
	
	public function buscarSerie($busca){
		try {
			$exec = $this->db->query("call getSerieBusca('".$busca."')") or die("Erro : " . $this->db->_error_message());
			if($exec->num_rows() > 0){
				$lSerie = array();
				foreach($exec->result() as $dados){
					$serie = new SerieModel();
					$serie->setIdEnsino($dados->idensino);
					$serie->setIdSerie($dados->idserie);
					$serie->setSerie($dados->serie);
					$serie->setStrSerie($dados->strSerie);
					array_push($lSerie, $serie);
				}
				$this->db->close();
				return $lSerie;
			}
			$this->db->close();
			return null;
		} catch (Exception $e){
			try {
				$this->db->close();
			} catch (Exception $a) {
			}
			
		}
		return null;
	}
	
	public function getListaSerie(){
		try {
			$exec = $this->db->query("call getSeries()") or die("Erro : " . $this->db->_error_message());
			if($exec->num_rows() > 0){
				$lSerie = array();
				foreach($exec->result() as $dados){
					$serie = new SerieModel();
					$serie->setIdEnsino($dados->idensino);
					$serie->setIdSerie($dados->idserie);
					$serie->setSerie($dados->serie);
					$serie->setStrSerie($dados->strSerie);
					array_push($lSerie, $serie);
				}
				$this->db->close();
				return $lSerie;
			}
			$this->db->close();
			return null;
		} catch (Exception $e){
			try {
				$this->db->close();
			} catch (Exception $a) {
			}
			return null;
		}
				
	}
	
	public function getSerieById($id){
		try{
			$exec = $this->db->query("call getSerieById(".$id.")") or die("Erro : " . $this->db->_error_message());
			if($exec->num_rows() > 0){
				$dados = $exec->row();
				$serie = new SerieModel();
				$serie->setIdSerie($dados->idserie);
				$serie->setIdEnsino($dados->idensino);
				$serie->setStrSerie($dados->strSerie);
				$serie->setSerie($dados->serie);
				
				$this->db->close();
				return $serie;
				
			}			
			$this->db->close();
			return null;
		} catch(Exception $e){
			try{
				$this->db->close();
			} catch(Exception $a){
			}
		}
		return null;
	}
	
	public function inserirEditar($idSerie, $idEnsino, $serie, $strSerie){
		$saida = null;
		$saida = -2; //Inicio
		try {
			$exec = $this->db->query("call inserirEditarSerie(".$idSerie.", ".$idEnsino.", ".$serie.", '".$strSerie."')") or die("Erro: " . $this->db->_error_message());
			if($exec->num_rows() > 0){
				$dados = $exec->row();
				$erro = $dados->erro;
				$tipo = $dados->tipo;
				if($tipo == "insert"){
					$saida = 0; // Inserido com sucesso
				}
				else {
					if((int)$erro == 0){
						$saida = 1; //Update Com sucesso;
					} else {
						$saida = -1; //Erro no update
					}
				}
			}
			else {
				$saida = -3; // Erro desconhecido
			}
			$this->db->close();
		} catch (Exception $e) {
			try {
				$this->db->close();
			} catch (Exception $e) {
			}
		}
		return $saida;
	}
	
}

?>